package auser;

import com.db4o.config.annotations.Indexed;
import com.db4o.ext.ExtObjectContainer;
import com.db4o.query.Query;

public class ParametersPDoppia extends AuserClassAbstract {
	private ExtObjectContainer container = null; 
	private Circolo circolo;
	private String key;
	private String contiEconomico;
	private String contiPatrimoniale;
	private Integer annoContabile = 0;
	private Double percQuotaTesseraCircolo=0.0;
	private Double percQuotaTesseraNaz=0.0;
	private Double percQuotaTesseraReg=0.0;
	private Double percQuotaTesseraProv=0.0;
	
	private Double ripQuotaTesseraNaz=2.50;
	private Double ripQuotaTesseraReg=1.50;
	private Double ripQuotaTesseraProv=2.00;
	private Double ripQuotaTesseraProvFa=1.00;
	
	private String codiceQuotaTesseraCircolo;
	private String codiceQuotaTesseraUP;
	
	private String codiceQuotaTesseraNaz;
	private String codiceQuotaTesseraReg;
	private String codiceQuotaTesseraProv;
	private String codiceQuotaTesseraProvFA;
	
	private String codiceQuotaFA;
	private String codiceQuotaAuser;
	private String codiceQuotaUpel;
	
	private String codiceCassaBar;
	private String codiceAttivitaBar;
	private String codiceAvanzoDisavanzo;
	
	
	private String codiceCassa;
	
	private PianoDeiConti pcQuotaTesseraCircolo;
	private PianoDeiConti pcQuotaTesseraNaz;
	private PianoDeiConti pcQuotaTesseraReg;
	private PianoDeiConti pcQuotaTesseraProv;
	private PianoDeiConti pcQuotaTesseraProvFA;
	private PianoDeiConti pcQuotaFA;
	private PianoDeiConti pcQuotaAuser;
	private PianoDeiConti pcQuotaUpel;
	private PianoDeiConti pcCassa; 
	
	public String getCodiceQuotaTesseraUP() {
		if(codiceQuotaTesseraUP==null) codiceQuotaTesseraUP="80.UP.01.0";
		return codiceQuotaTesseraUP;
	}
	
	public void setCodiceQuotaTesseraUP(String codiceQuotaTesseraUP) {
		this.codiceQuotaTesseraUP = codiceQuotaTesseraUP;
	}
	public ParametersPDoppia(ExtObjectContainer obj){
		this.container=obj;
	}
	public ParametersPDoppia(){}
	public ParametersPDoppia(String key){
		this.key=key;
	}

	public PianoDeiConti loadVocePianoDeiContiByCodice(String codice){
		PianoDeiConti p = null;
		Query q=null;
		int livello = 0;
		
		if(codice.endsWith(".0")) livello=3;
		else livello=4;
		
		try{
			q = container.query();	
			q.constrain(PianoDeiConti.class);
			q.descend("codice").constrain(codice).startsWith(true);
			if(livello==4) q.descend("circolo").constrain(circolo) ;
			 
			p=(PianoDeiConti)q.execute().next();
			//System.out.println("-- caricato " + p + " " + p.getCodice() + " da codice " + codice +  " livello " + livello + " circolo " + p.getCircolo().getCodice());
			
		}catch(Exception e){
			System.err.println("-- errore nel caricare Codice " + codice);
			 
		}
		
		return p;
	}
	
	public void syncronizeData(){
		pcCassa =loadVocePianoDeiContiByCodice(codiceCassa);
		pcQuotaAuser =loadVocePianoDeiContiByCodice(codiceQuotaAuser);
		pcQuotaFA =loadVocePianoDeiContiByCodice(codiceQuotaFA);
		pcQuotaTesseraCircolo =loadVocePianoDeiContiByCodice(codiceQuotaTesseraCircolo);
		pcQuotaTesseraNaz =loadVocePianoDeiContiByCodice(codiceQuotaTesseraNaz);
		pcQuotaTesseraProv =loadVocePianoDeiContiByCodice(codiceQuotaTesseraProv);
		pcQuotaTesseraProvFA =loadVocePianoDeiContiByCodice(codiceQuotaTesseraProvFA);
		pcQuotaTesseraReg =loadVocePianoDeiContiByCodice(codiceQuotaTesseraReg);
		pcQuotaUpel =loadVocePianoDeiContiByCodice(codiceQuotaUpel); 
		 
	}
	public String getCodiceQuotaTesseraCircolo() {
		return codiceQuotaTesseraCircolo;
	}
	public void setCodiceQuotaTesseraCircolo(String codiceQuotaTesseraCircolo) {
		this.codiceQuotaTesseraCircolo = codiceQuotaTesseraCircolo;
	}
	public String getCodiceQuotaTesseraNaz() {
		return codiceQuotaTesseraNaz;
	}
	public void setCodiceQuotaTesseraNaz(String codiceQuotaTesseraNaz) {
		this.codiceQuotaTesseraNaz = codiceQuotaTesseraNaz;
	}
	public String getCodiceQuotaTesseraProv() {
		return codiceQuotaTesseraProv;
	}
	public void setCodiceQuotaTesseraProv(String codiceQuotaTesseraProv) {
		this.codiceQuotaTesseraProv = codiceQuotaTesseraProv;
	}
	public String getCodiceQuotaTesseraReg() {
		return codiceQuotaTesseraReg;
	}
	public void setCodiceQuotaTesseraReg(String codiceQuotaTesseraReg) {
		this.codiceQuotaTesseraReg = codiceQuotaTesseraReg;
	}
	public String getKey() {
		return key;
	}
	public void setKey(String key) {
		this.key = key;
	}
	public Double getPercQuotaTesseraCircolo() {
		return percQuotaTesseraCircolo;
	}
	public void setPercQuotaTesseraCircolo(Double percQuotaTesseraCircolo) {
		this.percQuotaTesseraCircolo = percQuotaTesseraCircolo;
	}
	public Double getPercQuotaTesseraNaz() {
		return percQuotaTesseraNaz;
	}
	public void setPercQuotaTesseraNaz(Double percQuotaTesseraNaz) {
		this.percQuotaTesseraNaz = percQuotaTesseraNaz;
	}
	public Double getPercQuotaTesseraProv() {
		return percQuotaTesseraProv;
	}
	public void setPercQuotaTesseraProv(Double percQuotaTesseraProv) {
		this.percQuotaTesseraProv = percQuotaTesseraProv;
	}
	public Double getPercQuotaTesseraReg() {
		return percQuotaTesseraReg;
	}
	public void setPercQuotaTesseraReg(Double percQuotaTesseraReg) {
		this.percQuotaTesseraReg = percQuotaTesseraReg;
	}
	public PianoDeiConti getPcQuotaTesseraCircolo() {
		return pcQuotaTesseraCircolo;
	}
	public void setPcQuotaTesseraCircolo(PianoDeiConti pcQuotaTesseraCircolo) {
		//this.pcQuotaTesseraCircolo = pcQuotaTesseraCircolo;
	}
	public PianoDeiConti getPcQuotaTesseraNaz() {
		return pcQuotaTesseraNaz;
	}
	public void setPcQuotaTesseraNaz(PianoDeiConti pcQuotaTesseraNaz) {
		//this.pcQuotaTesseraNaz = pcQuotaTesseraNaz;
	}
	public PianoDeiConti getPcQuotaTesseraProv() {
		return pcQuotaTesseraProv;
	}
	public void setPcQuotaTesseraProv(PianoDeiConti pcQuotaTesseraProv) {
		//this.pcQuotaTesseraProv = pcQuotaTesseraProv;
	}
	public PianoDeiConti getPcQuotaTesseraReg() {
		return pcQuotaTesseraReg;
	}
	public void setPcQuotaTesseraReg(PianoDeiConti pcQuotaTesseraReg) {
		//this.pcQuotaTesseraReg = pcQuotaTesseraReg;
	}
	public String getCodiceCassa() {
		return codiceCassa;
	}
	public void setCodiceCassa(String codiceCassa) {
		this.codiceCassa = codiceCassa;
	}
	public PianoDeiConti getPcCassa() {
		return pcCassa;
	}
	public void setPcCassa(PianoDeiConti pcCassa) {
		//this.pcCassa = pcCassa;
	}
	public Double getRipQuotaTesseraNaz() {
		return ripQuotaTesseraNaz;
	}
	public void setRipQuotaTesseraNaz(Double ripQuotaTesseraNaz) {
		this.ripQuotaTesseraNaz = ripQuotaTesseraNaz;
	}
	public Double getRipQuotaTesseraProv() {
		return ripQuotaTesseraProv;
	}
	public void setRipQuotaTesseraProv(Double ripQuotaTesseraProv) {
		this.ripQuotaTesseraProv = ripQuotaTesseraProv;
	}
	public Double getRipQuotaTesseraProvFa() {
		return ripQuotaTesseraProvFa;
	}
	public void setRipQuotaTesseraProvFa(Double ripQuotaTesseraProvFa) {
		this.ripQuotaTesseraProvFa = ripQuotaTesseraProvFa;
	}
	public Double getRipQuotaTesseraReg() {
		return ripQuotaTesseraReg;
	}
	public void setRipQuotaTesseraReg(Double ripQuotaTesseraReg) {
		this.ripQuotaTesseraReg = ripQuotaTesseraReg;
	}
	public PianoDeiConti getPcQuotaTesseraProvFA() {
		return pcQuotaTesseraProvFA;
	}
	public void setPcQuotaTesseraProvFA(PianoDeiConti pcQuotaTesseraProvFA) {
		//this.pcQuotaTesseraProvFA = pcQuotaTesseraProvFA;
	}
	public String getCodiceQuotaTesseraProvFA() {
		return codiceQuotaTesseraProvFA;
	}
	public void setCodiceQuotaTesseraProvFA(String codiceQuotaTesseraProvFA) {
		this.codiceQuotaTesseraProvFA = codiceQuotaTesseraProvFA;
	}
	public Integer getAnnoContabile() {
		return annoContabile;
	}
	public void setAnnoContabile(Integer annoContabile) {
		this.annoContabile = annoContabile;
	}
	@Override
	public long getId() {
		// TODO Auto-generated method stub
		return super.getId();
	}
	@Override
	public void setId(long id) {
		// TODO Auto-generated method stub
		super.setId(id);
	}
	public String getContiEconomico() {
		return contiEconomico;
	}
	public void setContiEconomico(String contiEconomico) {
		this.contiEconomico = contiEconomico;
	}
	public String getContiPatrimoniale() {
		return contiPatrimoniale;
	}
	public void setContiPatrimoniale(String contiPatrimoniale) {
		this.contiPatrimoniale = contiPatrimoniale;
	}
	public String getCodiceQuotaAuser() {
		return codiceQuotaAuser;
	}
	public void setCodiceQuotaAuser(String codiceQuotaAuser) {
		this.codiceQuotaAuser = codiceQuotaAuser;
	}
	public String getCodiceQuotaFA() {
		return codiceQuotaFA;
	}
	public void setCodiceQuotaFA(String codiceQuotaFA) {
		this.codiceQuotaFA = codiceQuotaFA;
	}
	public String getCodiceQuotaUpel() {
		return codiceQuotaUpel;
	}
	public void setCodiceQuotaUpel(String codiceQuotaUpel) {
		this.codiceQuotaUpel = codiceQuotaUpel;
	}
	public PianoDeiConti getPcQuotaAuser() {
		return pcQuotaAuser;
	}
	public void setPcQuotaAuser(PianoDeiConti pcQuotaAuser) {
		//this.pcQuotaAuser = pcQuotaAuser;
	}
	public PianoDeiConti getPcQuotaFA() {
		return pcQuotaFA;
	}
	public void setPcQuotaFA(PianoDeiConti pcQuotaFA) {
		//this.pcQuotaFA = pcQuotaFA;
	}
	public PianoDeiConti getPcQuotaUpel() {
		return pcQuotaUpel;
	}
	public void setPcQuotaUpel(PianoDeiConti pcQuotaUpel) {
		//this.pcQuotaUpel = pcQuotaUpel;
	}
	public String getCodiceCassaBar() {
		if(codiceCassaBar==null  || codiceCassaBar.equals(""))codiceCassaBar="01.AU.02.0";
		return codiceCassaBar;
	}
	public void setCodiceCassaBar(String codiceCassaBar) {
		this.codiceCassaBar = codiceCassaBar;
	}
	public String getCodiceAttivitaBar() {
		if(codiceAttivitaBar==null || codiceAttivitaBar.equals(""))codiceAttivitaBar="91.AU.02.0";
		return codiceAttivitaBar;
	}
	public void setCodiceAttivitaBar(String codiceAttivitaBar) {
		this.codiceAttivitaBar = codiceAttivitaBar;
	}
	public String getCodiceAvanzoDisavanzo() {
		if(codiceAvanzoDisavanzo==null || codiceAvanzoDisavanzo.equals(""))codiceAvanzoDisavanzo="99.AU.99.0";
		return codiceAvanzoDisavanzo;
	}
	public void setCodiceAvanzoDisavanzo(String codiceAvanzoDisavanzo) {
		this.codiceAvanzoDisavanzo = codiceAvanzoDisavanzo;
	}
	public ExtObjectContainer getContainer() {
		return container;
	}
	public void setContainer(ExtObjectContainer container) {
		this.container = container;
	}
	public Circolo getCircolo() {
		return circolo;
	}
	public void setCircolo(Circolo circolo) {
		this.circolo = circolo;
	}
}
